草庐IT

html - 在 http.HandlerFunc 中调用 http.FileServer

全部标签

ruby-on-rails - 我如何调用 Rake 中的另一个任务

尽管这听起来可能与您在此处找到的其他问题相似,但还是有细微差别。我有两个目录,比如/home/rails/Rake和/home/rails/test_app。rails目录是我放置所有rails项目的地方。在Rake内部,我有一个Rakefile和一个create.rake文件。这就是我的rakefile的样子namespace:setupdodesc"something"task:initdoprint"Nameofthedestinationdirectory:"name=STDIN.gets.stripcp_r'.',"../#{name}/lib/tasks"cd"../#{n

ruby - ruby 中的并行 HTTP 请求

我有一组URL,我不想打开每个URL并获取特定标签。但我想并行执行此操作。这是我想做的伪代码:urls=[...]tags=[]urls.eachdo|url|fetch_tag_asynchronously(url)do|tag|tags如果这能以一种安全的方式完成,那就太棒了。我可以使用线程,但它看起来不像数组在ruby​​中是线程安全的。 最佳答案 您可以使用Mutex实现线程安全:require'thread'#forMutexurls=%w(http://test1.example.org/http://test2.exa

ruby - Ruby 的 Net::HTTP 线程安全吗?

Ruby的Net::HTTP线程安全吗?(除了它明确表示不是的version_1_1和version_1_2方法) 最佳答案 我不会指望它。2008年,matzwrote:ForMRI(1.8.x)andYARV(1.9.x),everyCimplementedmethodsareprotectedbyGIL(GlobalInterpreterLock),sothatyoudon'thavetoworryabout.Butitmightdependoneachimplementation.Net::HTTP在stdlib中,这意味着

ruby - 在扩展自身的模块中的实例方法中调用单例方法

我自己扩展了Kernel,在实例方法Kernel#abort的定义中,我调用了单例方法Kernel.abort:moduleKernelextendselfdefabortputs"PressENTERtoexit..."getsKernel.abortendendabort当我调用Kernel#abort时,方法定义中的Kernel.abort调用似乎是指原始的Kernel#abort(扩展为Kernel.abort)。Ruby如何知道当我写Kernel.abort时,我指的是原始的abort方法,而不是我刚刚创建的方法?我将如何递归调用我刚刚创建的新abort方法?

ruby - 自动向 ruby​​ 中的所有 HTTP 连接添加代理

我有一个启动多个HTTP连接的应用程序,我想为所有连接添加一个代理。该应用程序正在使用net/HTTP、TCP套接字和open-uri所以理想情况下我希望能够修补所有连接从这些库启动,而不是手动将其添加到启动连接的代码中的每个位置。有没有办法实现(在Ruby1.9.2上)? 最佳答案 OpenURI使用HTTP_PROXY环境变量这是一篇关于如何在windows和unix变体上使用它的文章。http://kaamka.blogspot.com/2009/06/httpproxy-environment-variable.html您也

ruby-on-rails - 模型方法应该调用 'save' 本身吗?

假设我们在模型中有一个方法只需要调用已保存的记录可能会更新模型本身,因此之后需要再次保存模型“保存”调用是否应该像下面的代码一样发生在方法内部defresultsave!ifnew_record?#dosomefunkystuffherethatmayalsochangethemodelstate#...#Andcalculatethereturnvaluesearch_result="foo"#Let'ssay"foo"isthevaluewecalculatedsave!ifchanged?search_result#returnend还是应该由外部观察者(Controller)负

ruby - 当我不提供方法名称时,为什么 Ruby 会调用 `call` 方法?

给定以下模块:moduleFoodefself.call'foo'endend我当然希望以下内容有效:putsFoo.call#outputs"foo"但是,我没想到这会起作用:putsFoo.()#outputs"foo"显然,当方法名称被省略时,Ruby假定我想调用call方法。这在哪里记录,为什么它会这样? 最佳答案 Proc#call:Invokestheblock,settingtheblock’sparameterstothevaluesinparamsusingsomethingclosetomethodcalling

ruby-on-rails - 如何在模型中调用 ApplicationController 中定义的方法

我在ApplicationController中定义了方法classApplicationController当我在模型中调用这个方法时classOrder它抛出错误undefinedlocalvariableget_active_gateway。所以我写了classOrder然后它抛出errorundefinedmethodnilforNilclass。我正在使用Rails3.2.0。 最佳答案 为什么需要这样的东西?该模型不应该知道它的Controller。在这种情况下,重新设计系统可能更合适。这是类似thread的链接.

ruby - 不带参数调用 super

根据documentationformodulesandclasses,调用super(不带参数或括号)使用相同的参数调用父方法:Whenusedwithoutanyargumentssuperusestheargumentsgiventothesubclassmethod.为“参数变量”分配一个新值似乎会改变这种行为:classMyClassdeffoo(arg)puts"MyClass#foo(#{arg.inspect})"endendclassMySubclass输出:MySubclass#foo("initalvalue")MyClass#foo("initalvalue")

ruby-on-rails - 检测应用程序是否作为 HTTP 服务器启动(rake 任务、rconsole 等)

我正在使用EventMachine和Monetarily与我的Rails应用程序一起启动eTCP服务器。这是从config/initializers/momentarily.rb开始的。我的问题是当我运行rake任务时它也会启动,比如db:migrate。我只希望它在我启动HTTP服务器时启动。环境无济于事,因为服务器启动和rake任务都在开发环境下。有没有办法知道应用程序正在运行HTTP服务器而不是其他任何东西?请注意,这不仅是rake任务,如果我运行rails控制台,EM也会启动,这对我的情况来说也是不可取的。 最佳答案 unl